--- Public interface for the quick check modules
module Test.QuickCheck
--   (
--     -- * Running tests
--     quickCheck
--   , Args(..), Result(..)
--   , stdArgs
--   , quickCheckWith
--   , quickCheckWithResult
--   , quickCheckResult
--     -- ** Running tests verbosely
--   , verboseCheck
--   , verboseCheckWith
--   , verboseCheckWithResult
--   , verboseCheckResult
--   , verbose
-- 
--     -- * Random generation
--   , Gen
--     -- ** Generator combinators
--   , sized
--   , resize
--   , choose
--   , promote
--   , suchThat
--   , suchThatMaybe
--   , oneof
--   , frequency
--   , elements
--   , growingElements
--   , listOf
--   , listOf1
--   , vectorOf
--     -- ** Generators which use Arbitrary
--   , vector
--   , orderedList
--     -- ** Generator debugging
--   , sample
--   , sample'
-- 
--     -- * Arbitrary and CoArbitrary classes
--   , Arbitrary(..)
--   , CoArbitrary(..)
-- 
--     -- ** Helper functions for implementing arbitrary
--   , arbitrarySizedIntegral
--   , arbitrarySizedFractional
--   , arbitrarySizedBoundedIntegral
--   , arbitraryBoundedIntegral
--   , arbitraryBoundedRandom
--   , arbitraryBoundedEnum
--   , coarbitraryEnum
--     -- ** Helper functions for implementing shrink
--   , shrinkNothing
--   , shrinkIntegral
--   , shrinkRealFrac
--     -- ** Helper functions for implementing coarbitrary
--   , variant
--   , (><)
--   , coarbitraryIntegral
--   , coarbitraryReal
--   , coarbitraryShow
-- 
--     -- ** Type-level modifiers for changing generator behavior
--   , Blind(..)
--   , Fixed(..)
--   , OrderedList(..)
--   , NonEmptyList(..)
--   , Positive(..)
--   , NonZero(..)
--   , NonNegative(..)
--   , Smart(..)
--   , Shrink2(..)
-- #ifndef NO_MULTI_PARAM_TYPE_CLASSES
--   , Shrinking(..)
-- #endif
--   , ShrinkState(..)
-- 
--     -- * Properties
--   , Property, Prop, Testable(..)
--     -- ** Property combinators
--   , mapSize
--   , shrinking
--   , (==>)
--   , discard
--   , forAll
--   , forAllShrink
--     -- *** Experimental combinators for conjunction and disjunction
--   , (.&.)
--   , (.&&.)
--   , conjoin
--   , (.||.)
--   , disjoin
--     -- *** Handling failure
--   , whenFail
--   , printTestCase
--   , whenFail'
--   , expectFailure
--   , within
--     -- *** Test distribution
--   , label
--   , collect
--   , classify
--   , cover
--   , once
-- 
--     -- * Text formatting
--   , Str(..)
--   , ranges
--   )
 where

infixr 1 `==>`
infixr 2 `.&.`
infixr 2 `.&&.`
infixr 2 `.||.`


-- ------------------------------------------------------------------------
-- imports

import Test.QuickCheckGen public
import Test.QuickCheckArbitrary public
import Test.QuickCheckModifiers public
import Test.QuickCheckProperty public hiding ( Result )
import Test.QuickCheckTest public
import Test.QuickCheckText public
import Test.QuickCheckException public

-- avoid unused imports warnings
-- private g = QuickCheckGen.choose
-- private a = QuickCheckArbitrary.arbitrary
-- private m = QuickCheckModifiers.NonNegative
-- private p = QuickCheckProperty.property
-- private t = QuickCheckTest.test
-- private x = QuickCheckText.kurz
-- private e = QuickCheckException.discard

-- ------------------------------------------------------------------------
-- the end.